package com.hsjk.szwj.module.pay.dal.dataobject.order;

import com.baomidou.mybatisplus.annotation.TableName;
import com.hsjk.szwj.framework.tenant.core.db.TenantBaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/08/22 01:35
 **/
@TableName("train_pay_order_division_record")
@Data
@EqualsAndHashCode(callSuper = true)
public class PayOrderDivisionRecordDO extends TenantBaseDO {
    private Long id;
    /**
     * 商户号
     */
    private Long mchId;
    /**
     * 服务商号
     */
    private Long isvId;
    /**
     * 应用ID
     */
    private Long appId;
    /**
     * 商户名称
     */
    private String mchName;
    /**
     * 类型: 1-普通商户, 2-特约商户(服务商模式)
     */
    private Integer mchType;

    private Long mchOrderNo;
    /**
     * 支付接口代码
     */
    private Long ifId;
    /**
     * 系统支付订单号
     */
    private Long payOrderId;
    /**
     * 支付订单渠道支付订单号
     */
    private String payOrderChannelOrderNo;
    /**
     * 订单金额,单位分
     */
    private Long payOrderAmount;
    /**
     * 订单实际分账金额, 单位：分（订单金额 - 商户手续费 - 已退款金额）
     */
    private Long payOrderDivisionAmount;
    /**
     * 系统分账批次号
     */
    private String batchOrderId;
    /**
     * 上游分账批次号
     */
    private String channelBatchOrderId;
    /**
     * 状态: 0-待分账 1-分账成功（明确成功）, 2-分账失败（明确失败）, 3-分账已受理（上游受理）
     */
    private Integer state;
    /**
     * 上游返回数据包
     */
    private String channelRespResult;
    /**
     * 账号快照》 分账接收者ID
     */
    private Long receiverId;
    /**
     * 账号快照》 组ID（便于商户接口使用）
     */
    private Long receiverGroupId;
    /**
     * 接收者账号别名
     */
    private String receiverAlias;
    /**
     * 账号快照》 分账接收账号类型: 0-个人 1-商户
     */
    private Integer accType;
    /**
     * 账号快照》 分账接收账号
     */
    private String accNo;
    /**
     * 账号快照》 分账接收账号名称
     */
    private String accName;
    /**
     * 账号快照》 分账关系类型（参考微信）， 如： SERVICE_PROVIDER 服务商等
     */
    private String relationType;
    /**
     * 账号快照》 当选择自定义时，需要录入该字段。 否则为对应的名称
     */
    private String relationTypeName;
    /**
     * 账号快照》 配置的实际分账比例
     */
    private BigDecimal divisionProfit;
    /**
     * 计算该接收方的分账金额,单位分
     */
    private Long calDivisionAmount;

    /**
     * 分账模型，1：金额，2：百分比
     */
    private Integer divisionModel;
    /**
     * 分账金额，单位：分
     */
    private Long divisionAmount;
}
